perm filename WINTER.SAI[VIS,HPM]1 blob sn#109104 filedate 1974-07-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "WINTER"
C00006 ENDMK
C⊗;
BEGIN "WINTER"
REQUIRE "WINNIC.SAI[VIS,HPM]" SOURCE_FILE;

INTEGER ARRAY CHAN[0:5]; INTEGER WINDOW,I,J,MAC;
REAL SUM,TX,TY; STRING FILN;

CHAN[0]←'32; CHAN[1]←'37; CHAN[2]←'33; CHAN[3]←'34; CHAN[4]←'35; CHAN[5]←'36;
DDINIT; SCREEN(-.2,1.2,1.2,-.2); DRKEN; RECTAN(-2,-2,2,2);
DO OUTSTR("FILENAME:") UNTIL
	PIXDIM((FILN←INCHWL)&(IF FILN[∞ TO ∞]="]" THEN "" ELSE "[DAT,BGB]"));
OUTSTR("WINDOW SIZE:"); WINDOW←CVD(INCHWL); INIWIN(WINDOW);

OUTSTR("PICSIZ "&CVS(PICSIZ)&
 "  WIDTH "&CVS(PICWID)&"  HEIGHT "&CVS(PICHIG)&"  WINDOW "&CVS(WINDOW)&
 "  VERWIN "&CVS(VERWIN)&"  HORWIN "&CVS(HORWIN)&'15&'12);

 BEGIN INTEGER I,J; REAL X,Y;
 INTEGER ARRAY PIC[1:PICSIZ],WINS[1:VERWIN,1:HORWIN];
 TX←WINDOW/PICWID;
 TY←WINDOW/PICHIG;
 GETPIX(PIC);
 OUTSTR("DISPLAY?"); IF INCHWL="Y" THEN
  BEGIN
  FOR I←1 STEP 1 UNTIL 5 DO DPYUP('36);
  LITEN; TXTPOS(0,1.2,.04,-.08); TEXT(FILN); DRKEN;
  FOR I←4 STEP -1 UNTIL (5-PICBIT) MAX 0 DO
   BEGIN
   RECTAN(0,0,1,1);
   VIDEO(0,0,1,1,PIC[1],2↑(PICBIT+I-5));
   FOR J←1 STEP 1 UNTIL 5 DO DPYUP(CHAN[I]);
   END;
  END;

 RECTAN(-2,-2,2,2); LITEN;
 FOR J←0 STEP 1 UNTIL HORWIN DO
  BEGIN
  X←J*TX;
  LINE(X,0,X,-.02); LINE(X,1,X,1.02);
  END;
 FOR I←0 STEP 1 UNTIL VERWIN DO
  BEGIN
  Y←I*TY;
  LINE(0,Y,-.02,Y); LINE(1,Y,1.02,Y);
  END;
 DOWIN(PIC[1],WINS[1,1]);
 DPYUP(CHAN[5]);
 MAC←0;
 FOR I←1 STEP 1 UNTIL VERWIN DO
 FOR J←1 STEP 1 UNTIL HORWIN DO
  BEGIN SUM←SUM+WINS[I,J]; MAC←MAC MAX WINS[I,J]; END;
 SUM←SUM/(VERWIN*HORWIN);
 FOR I←2 STEP 1 UNTIL VERWIN-1 DO
 FOR J←2 STEP 1 UNTIL HORWIN-1 DO
  BEGIN  INTEGER II,JJ,WMAX;
  X←(J-1)*TX;
  Y←(I-1)*TY;
  WMAX←0;
  FOR II←-1,0,1 DO FOR JJ←-1,0,1 DO IF II≠0∨JJ≠0 THEN WMAX←WMAX MAX WINS[I+II,J+JJ];
  IF WINS[I,J]≥WMAX MAX SUM THEN
   BEGIN
   LINE(X,Y,X+TX,Y);
   LINE(X+TX,Y,X+TX,Y+TY);
   LINE(X+TX,Y+TY,X,Y+TY);
   LINE(X,Y+TY,X,Y);
   END;

 END;
FOR I←1 STEP 1 UNTIL 5 DO DPYUP(CHAN[5]);

MAKPIX(VERWIN,HORWIN,6);
 BEGIN
 INTEGER ARRAY POUT[1:PICSIZ];
 FOR I←1 STEP 1 UNTIL VERWIN DO FOR J←1 STEP 1 UNTIL HORWIN
			DO PUTEL(POUT[1],I,J,63*SQRT(WINS[I,J]/MAC));
 PUTPIX(POUT,"TMP.TMP");
 END;
END;

END;